#! /usr/bin/env python
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: Copyright (C) 2023 MH3SP Server Project
# SPDX-License-Identifier: AGPL-3.0-or-later
"""Equipment utils module."""

import struct


EMPTY_ARENA_EQUIPMENT_SLOT = struct.pack('>I', 0xFFFFFFFF)
EMPTY_ARENA_ITEM_SLOT = struct.pack('>I', 0x00000000)


def slot(type_id, equipment_id, slots=0):
    """Equipment slot / TODO: Handle gems"""
    return struct.pack(">BBH", slots, type_id, equipment_id)
    # return struct.pack(">BBHII", type_id, slots, equipment_id, 0, 0)


def item_slot(item_id, quantity):
    return struct.pack(">HH", item_id, quantity)


def create_arena_equipment_set(sets):
    arena_equipment_set = b""
    for set_num in range(4):
        weapon1, weapon2, weapon3, helm, chestpiece, gauntlets,\
            faulds, leggings, items, gunner_pouch = sets[set_num]
        # Weapon
        arena_equipment_set += slot(*weapon1)
        if weapon2 is not None:
            arena_equipment_set += slot(*weapon2)
        else:
            arena_equipment_set += EMPTY_ARENA_EQUIPMENT_SLOT
        if weapon3 is not None:
            arena_equipment_set += slot(*weapon3)
        else:
            arena_equipment_set += EMPTY_ARENA_EQUIPMENT_SLOT
        # Armors
        arena_equipment_set += slot(EquipmentClasses.Helmet, helm)
        arena_equipment_set += slot(EquipmentClasses.Chestpiece, chestpiece)
        arena_equipment_set += slot(EquipmentClasses.Faulds, faulds)
        arena_equipment_set += slot(EquipmentClasses.Gauntlets, gauntlets)
        arena_equipment_set += slot(EquipmentClasses.Leggings, leggings)
        # Items (24 4-byte slots available)
        for item in items:
            arena_equipment_set += item_slot(*item)
        arena_equipment_set += EMPTY_ARENA_ITEM_SLOT * (24 - len(items))
        # Gunner pouch (8 4-byte slots available)
        for item in gunner_pouch:
            arena_equipment_set += item_slot(*item)
        arena_equipment_set += EMPTY_ARENA_ITEM_SLOT * (8 - len(gunner_pouch))
    return arena_equipment_set


class Chestpiece:
    NoEquipment = 0
    LeatherVest = 1
    ChainmailVest = 2
    LocLacShawl = 3
    HuntersMail = 4
    HuntersVest = 5
    BoneMail = 6
    BoneVest = 7
    AlloyMail = 8
    AlloyVest = 9
    JaggiMail = 10
    JaggiVest = 11
    BnahabraSuit = 12
    BnahabraVest = 13
    RhenoplosMail = 14
    RhenoplosVest = 15
    QurupecoMail = 16
    QurupecoVest = 17
    LudrothMail = 18
    LudrothVest = 19
    SteelMail = 20
    BaggiMail = 21
    BaggiVest = 22
    BarrothMail = 23
    BarrothVest = 24
    GobulMail = 25
    GobulVest = 26
    RangersGirdle = 27
    ArchersGirdle = 28
    GuildBardBolero = 29
    GuildBardVest = 30
    ScholarsBlouse = 31
    ScholarsVest = 32
    RathianMail = 33
    RathianVest = 34
    GigginoxMail = 35
    GigginoxVest = 36
    IngotMail = 37
    IngotVest = 38
    LagiacrusMail = 39
    LagiacrusVest = 40
    RathalosMail = 41
    RathalosVest = 42
    BariothMail = 43
    BariothVest = 44
    DiablosMail = 45
    DiablosVest = 46
    UragaanMail = 47
    UragaanVest = 48
    AgnaktorMail = 49
    AgnaktorVest = 50
    HeliosMail = 51
    HeliosVest = 52
    SeleneMail = 53
    SeleneVest = 54
    YamatoMuneate = 55
    MutsuMuneate = 56
    HinataMuneate = 57
    AmagiMuneate = 58
    LeatherMailPlus = 59
    LeatherVestPlus = 60
    ChainmailArmorPlus = 61
    ChainmailVestPlus = 62
    LocLacShawlPlus = 63
    LocLacVestPlus = 64
    HuntersMailPlus = 65
    HuntersVestPlus = 66
    BoneMailPlus = 67
    BoneVestPlus = 68
    AlloyMailPlus = 69
    AlloyVestPlus = 70
    JaggiMailPlus = 71
    JaggiVestPlus = 72
    BnahabraMailPlus = 73
    BnahabraVestPlus = 74
    RhenoplosMailPlus = 75
    RhenoplosVestPlus = 76
    QurupecoMailPlus = 77
    QurupecoVestPlus = 78
    LudrothMailPlus = 79
    LudrothVestPlus = 80
    SteelMailPlus = 81
    BaggiMailPlus = 82
    BaggiVestPlus = 83
    BarrothMailPlus = 84
    BarrothVestPlus = 85
    GobulMailPlus = 86
    GobulVestPlus = 87
    GuildBardBoleroPlus = 88
    GuildBardVestPlus = 89
    ScholarsBlousePlus = 90
    ScholarsVestPlus = 91
    RathianMailPlus = 92
    RathianVestPlus = 93
    GigginoxMailPlus = 94
    GigginoxVestPlus = 95
    IngotMailPlus = 96
    IngotVestPlus = 97
    DoberMail = 98
    DoberVest = 99
    LagiacrusMailPlus = 100
    LagiacrusVestPlus = 101
    RathalosMailPlus = 102
    RathalosVestPlus = 103
    BariothMailPlus = 104
    BariothVestPlus = 105
    DiablosMailPlus = 106
    DiablosVestPlus = 107
    UragaanMailPlus = 108
    UragaanVestPlus = 109
    AgnaktorMailPlus = 110
    AgnaktorVestPlus = 111
    VangisMail = 112
    VangisVest = 113
    DamascusMail = 114
    DamascusVest = 115
    HeliosMailPlus = 116
    HeliosVestPlus = 117
    SeleneMailPlus = 118
    SeleneVestPlus = 119
    YamatoMuneatePlus = 120
    MutsuMuneatePlus = 121
    HinataMuneatePlus = 122
    AmagiMuneatePlus = 123
    EscadoraSoul = 124
    EscadoraSeele = 125
    ChakraNecklace = 126
    HellHunterJacket = 127
    HellHunterLeather = 128
    SoulHunterJacket = 129
    SoulHunterLeather = 130
    err131 = 131
    err132 = 132
    err133 = 133
    err134 = 134
    err135 = 135
    err136 = 136
    err137 = 137
    err138 = 138
    err139 = 139
    err140 = 140


class Gauntlets:
    NoEquipment = 0
    LeatherGloves = 1
    ChainmailGloves = 2
    HuntersVambraces = 3
    HuntersGuards = 4
    BoneVambraces = 5
    BoneGuards = 6
    AlloyVambraces = 7
    AlloyGuards = 8
    JaggiVambraces = 9
    JaggiGuards = 10
    RhenoplosVambraces = 11
    RhenoplosGuards = 12
    QurupecoVambraces = 13
    QurupecoGuards = 14
    LudrothVambraces = 15
    LudrothGuards = 16
    SteelVambraces = 17
    BaggiVambraces = 18
    BaggiGuards = 19
    BarrothVambraces = 20
    BarrothGuards = 21
    GobulVambraces = 22
    GobulGuards = 23
    RangersGauntlets = 24
    ArchersGauntlets = 25
    GuildBardBraces = 26
    GuildBardSleeves = 27
    ScholarsGloves = 28
    ScholarsSleeves = 29
    RathianVambraces = 30
    RathianGuards = 31
    GigginoxVambraces = 32
    GigginoxGuards = 33
    IngotVambraces = 34
    IngotGuards = 35
    LagiacrusVambraces = 36
    LagiacrusGuards = 37
    RathalosVambraces = 38
    RathalosGuards = 39
    BariothVambraces = 40
    BariothGuards = 41
    DiablosVambraces = 42
    DiablosGuards = 43
    UragaanVambraces = 44
    UragaanGuards = 45
    AgnaktorVambraces = 46
    AgnaktorGuards = 47
    HeliosVambraces = 48
    HeliosGuards = 49
    SeleneVambraces = 50
    SeleneGuards = 51
    YamatoKote = 52
    MutsuKote = 53
    HinataKote = 54
    AmagiKote = 55
    LeatherVambracesPlus = 56
    LeatherGuardsPlus = 57
    ChainmailVambracesPlus = 58
    ChainmailGuardsPlus = 59
    HuntersVambracesPlus = 60
    HuntersGuardsPlus = 61
    BoneVambracesPlus = 62
    BoneGuardsPlus = 63
    AlloyVambracesPlus = 64
    AlloyGuardsPlus = 65
    JaggiVambracesPlus = 66
    JaggiGuardsPlus = 67
    RhenoplosVambracesPlus = 68
    RhenoplosGuardsPlus = 69
    QurupecoVambracesPlus = 70
    QurupecoGuardsPlus = 71
    LudrothVambracesPlus = 72
    LudrothGuardsPlus = 73
    SteelVambracesPlus = 74
    BaggiVambracesPlus = 75
    BaggiGuardsPlus = 76
    BarrothVambracesPlus = 77
    BarrothGuardsPlus = 78
    GobulVambracesPlus = 79
    GobulGuardsPlus = 80
    GuildBardBracesPlus = 81
    GuildBardSleevesPlus = 82
    ScholarsGlovesPlus = 83
    ScholarsSleevesPlus = 84
    RathianVambracesPlus = 85
    RathianGuardsPlus = 86
    GigginoxVambracesPlus = 87
    GigginoxGuardsPlus = 88
    IngotVambracesPlus = 89
    IngotGuardsPlus = 90
    DoberVambraces = 91
    DoberGuards = 92
    LagiacrusVambracesPlus = 93
    LagiacrusGuardsPlus = 94
    RathalosVambracesPlus = 95
    RathalosGuardsPlus = 96
    BariothVambracesPlus = 97
    BariothGuardsPlus = 98
    DiablosVambracesPlus = 99
    DiablosGuardsPlus = 100
    UragaanVambracesPlus = 101
    UragaanGuardsPlus = 102
    AgnaktorVambracesPlus = 103
    AgnaktorGuardsPlus = 104
    VangisVambraces = 105
    VangisGuards = 106
    DamascusVambraces = 107
    DamascusGuards = 108
    HeliosVambracesPlus = 109
    HeliosGuardsPlus = 110
    SeleneVambracesPlus = 111
    SeleneGuardsPlus = 112
    YamatoKotePlus = 113
    MutsuKotePlus = 114
    HinataKotePlus = 115
    AmagiKotePlus = 116
    EscadoraArms = 117
    EscadoraArma = 118
    ChakraBracelet = 119
    GrinderBracelet = 120
    FactoryBracelet = 121
    UpstreamBracelet = 122
    BlastBracelet = 123
    PepBracelet = 124
    err125 = 125
    err126 = 126
    err127 = 127
    err128 = 128
    err129 = 129
    err130 = 130
    err131 = 131
    err132 = 132
    err133 = 133
    err134 = 134
    err135 = 135
    err136 = 136
    err137 = 137
    err138 = 138
    err139 = 139
    err140 = 140


class Faulds:
    NoEquipment = 0
    LeatherBelt = 1
    PiscineBelt = 2
    ChainmailBelt = 3
    LocLacKilt = 4
    HuntersFaulds = 5
    HuntersCoat = 6
    BoneFaulds = 7
    BoneCoat = 8
    AlloyCoil = 9
    AlloyCoat = 10
    JaggiFaulds = 11
    JaggiCoat = 12
    BnahabraCoil = 13
    BnahabraCoat = 14
    RhenoplosCoil = 15
    RhenoplosCoat = 16
    QurupecoCoil = 17
    QurupecoCoat = 18
    LudrothFaulds = 19
    LudrothCoat = 20
    SteelFaulds = 21
    BaggiCoil = 22
    BaggiCoat = 23
    BarrothFaulds = 24
    BarrothCoat = 25
    GobulFaulds = 26
    GobulCoat = 27
    RangersFaulds = 28
    ArchersBandolier = 29
    GuildBardCoil = 30
    GuildBardCoat = 31
    ScholarsSkirt = 32
    ScholarsMini = 33
    RathianFaulds = 34
    RathianCoat = 35
    GigginoxFaulds = 36
    GigginoxCoat = 37
    IngotCoil = 38
    IngotCoat = 39
    LagiacrusFaulds = 40
    LagiacrusCoat = 41
    RathalosFaulds = 42
    RathalosCoat = 43
    BariothFaulds = 44
    BariothCoat = 45
    UragaanFaulds = 46
    UragaanCoat = 47
    AgnaktorFaulds = 48
    AgnaktorCoat = 49
    HeliosCoil = 50
    HeliosCoat = 51
    SeleneCoil = 52
    SeleneCoat = 53
    YamatoKoshiate = 54
    MutsuKoshiate = 55
    HinataKoshiate = 56
    AmagiKoshiate = 57
    LeatherFauldsPlus = 58
    LeatherCoatPlus = 59
    PiscineBeltPlus = 60
    PiscineTankPlus = 61
    ChainmailFauldsPlus = 62
    ChainmailCoatPlus = 63
    LocLacKiltPlus = 64
    LocLacCoatPlus = 65
    HuntersFauldsPlus = 66
    HuntersCoatPlus = 67
    BoneFauldsPlus = 68
    BoneCoatPlus = 69
    AlloyFauldsPlus = 70
    AlloyCoatPlus = 71
    JaggiFauldsPlus = 72
    JaggiCoatPlus = 73
    BnahabraFauldsPlus = 74
    BnahabraCoatPlus = 75
    RhenoplosCoilPlus = 76
    RhenoplosCoatPlus = 77
    QurupecoCoilPlus = 78
    QurupecoCoatPlus = 79
    LudrothFauldsPlus = 80
    LudrothCoatPlus = 81
    SteelCoilPlus = 82
    BaggiCoilPlus = 83
    BaggiCoatPlus = 84
    BarrothFauldsPlus = 85
    BarrothCoatPlus = 86
    GobulFauldsPlus = 87
    GobulCoatPlus = 88
    GuildBardCoilPlus = 89
    GuildBardCoatPlus = 90
    ScholarsSkirtPlus = 91
    ScholarsMiniPlus = 92
    RathianFauldsPlus = 93
    RathianCoatPlus = 94
    GigginoxFauldsPlus = 95
    GigginoxCoatPlus = 96
    IngotCoilPlus = 97
    IngotCoatPlus = 98
    DoberCoil = 99
    DoberCoat = 100
    LagiacrusFauldsPlus = 101
    LagiacrusCoatPlus = 102
    RathalosFauldsPlus = 103
    RathalosCoatPlus = 104
    BariothFauldsPlus = 105
    BariothCoatPlus = 106
    UragaanFauldsPlus = 107
    UragaanCoatPlus = 108
    AgnaktorFauldsPlus = 109
    AgnaktorCoatPlus = 110
    VangisCoil = 111
    VangisCoat = 112
    DamascusCoil = 113
    DamascusCoat = 114
    HeliosCoilPlus = 115
    HeliosCoatPlus = 116
    SeleneCoilPlus = 117
    SeleneCoatPlus = 118
    YamatoKoshiatePlus = 119
    MutsuKoshiatePlus = 120
    HinataKoshiatePlus = 121
    AmagiKoshiatePlus = 122
    EscadoraMight = 123
    EscadoraForce = 124
    ChakraWaistlet = 125
    err126 = 126
    err127 = 127
    err128 = 128
    err129 = 129
    err130 = 130
    err131 = 131
    err132 = 132
    err133 = 133
    err134 = 134
    err135 = 135
    err136 = 136
    err137 = 137
    err138 = 138
    err139 = 139
    err140 = 140


class Leggings:
    NoEquipment = 0
    LeatherPants = 1
    PiscineLeggings = 2
    ChainmailPants = 3
    LocLacBoots = 4
    HuntersGreaves = 5
    HuntersLeggings = 6
    BoneGreaves = 7
    BoneLeggings = 8
    AlloyGreaves = 9
    AlloyLeggings = 10
    JaggiGreaves = 11
    JaggiLeggings = 12
    BnahabraBoots = 13
    BnahabraPants = 14
    RhenoplosGreaves = 15
    RhenoplosLeggings = 16
    QurupecoGreaves = 17
    QurupecoLeggings = 18
    LudrothGreaves = 19
    LudrothLeggings = 20
    BaggiGreaves = 21
    BaggiLeggings = 22
    BarrothGreaves = 23
    BarrothLeggings = 24
    GobulGreaves = 25
    GobulLeggings = 26
    RangersEspadrilles = 27
    ArchersEspadrilles = 28
    GuildBardBoots = 29
    GuildBardGaiters = 30
    ScholarsSocks = 31
    ScholarsSandals = 32
    RathianGreaves = 33
    RathianLeggings = 34
    GigginoxGreaves = 35
    GigginoxLeggings = 36
    IngotGreaves = 37
    IngotLeggings = 38
    LagiacrusGreaves = 39
    LagiacrusLeggings = 40
    RathalosGreaves = 41
    RathalosLeggings = 42
    BariothGreaves = 43
    BariothLeggings = 44
    UragaanGreaves = 45
    UragaanLeggings = 46
    AgnaktorGreaves = 47
    AgnaktorLeggings = 48
    HeliosGreaves = 49
    HeliosLeggings = 50
    SeleneGreaves = 51
    SeleneLeggings = 52
    YamatoGusoku = 53
    MutsuGusoku = 54
    HinataHakama = 55
    AmagiHakama = 56
    LeatherGreavesPlus = 57
    LeatherLeggingsPlus = 58
    PiscineLeggingsPlus = 59
    PiscinePantsPlus = 60
    ChainmailGreavesPlus = 61
    ChainmailLeggingsPlus = 62
    LocLacBootsPlus = 63
    LocLacGaitersPlus = 64
    HuntersGreavesPlus = 65
    HuntersLeggingsPlus = 66
    BoneGreavesPlus = 67
    BoneLeggingsPlus = 68
    AlloyGreavesPlus = 69
    AlloyLeggingsPlus = 70
    JaggiGreavesPlus = 71
    JaggiLeggingsPlus = 72
    BnahabraGreavesPlus = 73
    BnahabraLeggingsPlus = 74
    RhenoplosGreavesPlus = 75
    RhenoplosLeggingsPlus = 76
    QurupecoGreavesPlus = 77
    QurupecoLeggingsPlus = 78
    LudrothGreavesPlus = 79
    LudrothLeggingsPlus = 80
    BaggiGreavesPlus = 81
    BaggiLeggingsPlus = 82
    BarrothGreavesPlus = 83
    BarrothLeggingsPlus = 84
    GobulGreavesPlus = 85
    GobulLeggingsPlus = 86
    GuildBardBootsPlus = 87
    GuildBardGaitersPlus = 88
    ScholarsSocksPlus = 89
    ScholarsSandalsPlus = 90
    RathianGreavesPlus = 91
    RathianLeggingsPlus = 92
    GigginoxGreavesPlus = 93
    GigginoxLeggingsPlus = 94
    IngotGreavesPlus = 95
    IngotLeggingsPlus = 96
    DoberGreaves = 97
    DoberLeggings = 98
    LagiacrusGreavesPlus = 99
    LagiacrusLeggingsPlus = 100
    RathalosGreavesPlus = 101
    RathalosLeggingsPlus = 102
    BariothGreavesPlus = 103
    BariothLeggingsPlus = 104
    UragaanGreavesPlus = 105
    UragaanLeggingsPlus = 106
    AgnaktorGreavesPlus = 107
    AgnaktorLeggingsPlus = 108
    VangisGreaves = 109
    VangisLeggings = 110
    DamascusGreaves = 111
    DamascusLeggings = 112
    HeliosGreavesPlus = 113
    HeliosLeggingsPlus = 114
    SeleneGreavesPlus = 115
    SeleneLeggingsPlus = 116
    YamatoGusokuPlus = 117
    MutsuGusokuPlus = 118
    HinataHakamaPlus = 119
    AmagiHakamaPlus = 120
    EscadoraScale = 121
    EscadoraScala = 122
    ChakraAnklet = 123
    BlackLeatherPants = 124
    err125 = 125
    err126 = 126
    err127 = 127
    err128 = 128
    err129 = 129
    err130 = 130
    err131 = 131
    err132 = 132
    err133 = 133
    err134 = 134
    err135 = 135
    err136 = 136
    err137 = 137
    err138 = 138
    err139 = 139
    err140 = 140


class Helmet:
    NoEquipment = 0
    LeatherHeadgear = 1
    PiscineMask = 2
    ChainmailHeadgear = 3
    HuntersHelm = 4
    HuntersCap = 5
    BoneHelm = 6
    BoneCap = 7
    AlloyHelm = 8
    AlloyCap = 9
    JaggiHelm = 10
    JaggiCap = 11
    RhenoplosHelm = 12
    RhenoplosCap = 13
    QurupecoHelm = 14
    QurupecoCap = 15
    LudrothHelm = 16
    LudrothCap = 17
    BaggiHelm = 18
    BaggiCap = 19
    BarrothHelm = 20
    BarrothCap = 21
    GobulHelm = 22
    GobulCap = 23
    RangersHeadgear = 24
    ArchersTurban = 25
    GuildBardLobos = 26
    GuildBardHat = 27
    ScholarsBeret = 28
    ScholarsCap = 29
    RathianHelm = 30
    RathianCap = 31
    GigginoxHelm = 32
    GigginoxCap = 33
    IngotHelm = 34
    IngotCap = 35
    LagiacrusHelm = 36
    LagiacrusCap = 37
    RathalosHelm = 38
    RathalosCap = 39
    BariothHelm = 40
    BariothCap = 41
    DiablosHelm = 42
    DiablosCap = 43
    UragaanHelm = 44
    UragaanCap = 45
    AgnaktorHelm = 46
    AgnaktorCap = 47
    HeliosHelm = 48
    HeliosCap = 49
    SeleneHelm = 50
    SeleneCap = 51
    YamatoKabuto = 52
    MutsuEboshi = 53
    HinataHachigane = 54
    AmagiHachigane = 55
    LeatherHelmPlus = 56
    LeatherCapPlus = 57
    PiscineMaskPlus = 58
    PiscineSnorkelPlus = 59
    ChainmailHelmPlus = 60
    ChainmailCapPlus = 61
    HuntersHelmPlus = 62
    HuntersCapPlus = 63
    BoneHelmPlus = 64
    BoneCapPlus = 65
    AlloyHelmPlus = 66
    AlloyCapPlus = 67
    JaggiHelmPlus = 68
    JaggiCapPlus = 69
    RhenoplosHelmPlus = 70
    RhenoplosCapPlus = 71
    QurupecoHelmPlus = 72
    QurupecoCapPlus = 73
    LudrothHelmPlus = 74
    LudrothCapPlus = 75
    BaggiHelmPlus = 76
    BaggiCapPlus = 77
    BarrothHelmPlus = 78
    BarrothCapPlus = 79
    GobulHelmPlus = 80
    GobulCapPlus = 81
    GuildBardLobosPlus = 82
    GuildBardHatPlus = 83
    ScholarsBeretPlus = 84
    ScholarsCapPlus = 85
    RathianHelmPlus = 86
    RathianCapPlus = 87
    GigginoxHelmPlus = 88
    GigginoxCapPlus = 89
    IngotHelmPlus = 90
    IngotCapPlus = 91
    DoberHelm = 92
    DoberCap = 93
    LagiacrusHelmPlus = 94
    LagiacrusCapPlus = 95
    RathalosHelmPlus = 96
    RathalosCapPlus = 97
    BariothHelmPlus = 98
    BariothCapPlus = 99
    DiablosHelmPlus = 100
    DiablosCapPlus = 101
    UragaanHelmPlus = 102
    UragaanCapPlus = 103
    AgnaktorHelmPlus = 104
    AgnaktorCapPlus = 105
    VangisHelm = 106
    VangisCap = 107
    DamascusHelm = 108
    DamascusCap = 109
    HeliosHelmPlus = 110
    HeliosCapPlus = 111
    SeleneHelmPlus = 112
    SeleneCapPlus = 113
    YamatoKabutoPlus = 114
    MutsuEboshiPlus = 115
    HinataHachiganePlus = 116
    AmagiHachiganePlus = 117
    EscadoraWisdom = 118
    EscadoraSagesse = 119
    ChakraEarring = 120
    SkullMask = 121
    JaggiMask = 122
    WyvernkingEyepatch = 123
    ShadowShades = 124
    BlastEarring = 125
    PursuitEarring = 126
    HawkeyeEarring = 127
    GraceEarring = 128
    SwordSaintEarring = 129
    BarrageEarring = 130
    DrawEarring = 131
    SilenceEarring = 132
    JumpEarring = 133
    ChargeEarring = 134
    SprintEarring = 135
    DemonEdgeEarring = 136
    VoraciousEarring = 137
    KirinEarring = 138
    StimulusEarring = 139
    EarringofFate = 140


class Talisman:
    NoEquipment = 0
    PawnTalisman = 1
    BishopTalisman = 2
    KnightTalisman = 3
    RookTalisman = 4
    QueenTalisman = 5
    KingTalisman = 6
    DragonTalisman = 7
    err8 = 8
    err9 = 9
    err10 = 10
    err11 = 11
    err12 = 12
    err13 = 13
    err14 = 14
    err15 = 15
    err16 = 16
    err17 = 17
    err18 = 18
    err19 = 19
    err20 = 20
    err21 = 21
    err22 = 22
    err23 = 23
    err24 = 24
    err25 = 25
    err26 = 26
    err27 = 27
    err28 = 28
    err29 = 29
    err30 = 30
    err31 = 31
    err32 = 32
    err33 = 33
    err34 = 34
    err35 = 35
    err36 = 36
    err37 = 37
    err38 = 38
    err39 = 39
    err40 = 40
    err41 = 41
    err42 = 42
    err43 = 43
    err44 = 44
    err45 = 45
    err46 = 46
    err47 = 47
    err48 = 48
    err49 = 49
    err50 = 50
    err51 = 51
    err52 = 52
    err53 = 53
    err54 = 54
    err55 = 55
    err56 = 56
    err57 = 57
    err58 = 58
    err59 = 59
    err60 = 60
    err61 = 61
    err62 = 62
    err63 = 63
    err64 = 64
    err65 = 65
    err66 = 66
    err67 = 67
    err68 = 68
    err69 = 69
    err70 = 70
    err71 = 71
    err72 = 72
    err73 = 73
    err74 = 74
    err75 = 75
    err76 = 76
    err77 = 77
    err78 = 78
    err79 = 79
    err80 = 80
    err81 = 81
    err82 = 82
    err83 = 83
    err84 = 84
    err85 = 85
    err86 = 86
    err87 = 87
    err88 = 88
    err89 = 89
    err90 = 90
    err91 = 91
    err92 = 92
    err93 = 93
    err94 = 94
    err95 = 95
    err96 = 96
    err97 = 97
    err98 = 98
    err99 = 99
    err100 = 100
    err101 = 101
    err102 = 102
    err103 = 103
    err104 = 104
    err105 = 105
    err106 = 106
    err107 = 107
    err108 = 108
    err109 = 109
    err110 = 110
    err111 = 111
    err112 = 112
    err113 = 113
    err114 = 114
    err115 = 115
    err116 = 116
    err117 = 117
    err118 = 118
    err119 = 119
    err120 = 120
    err121 = 121
    err122 = 122
    err123 = 123
    err124 = 124
    err125 = 125
    err126 = 126
    err127 = 127
    err128 = 128
    err129 = 129
    err130 = 130
    err131 = 131
    err132 = 132
    err133 = 133
    err134 = 134
    err135 = 135
    err136 = 136
    err137 = 137
    err138 = 138
    err139 = 139
    err140 = 140


class EquipmentClasses:
    Chestpiece = 1
    Gauntlets = 2
    Faulds = 3
    Leggings = 4
    Helmet = 5
    # Talisman = 6
    Greatsword = 7
    SnS = 8
    Hammer = 9
    Lance = 10
    BowgunFrame = 11
    BowgunBarrel = 12
    BowgunStock = 13
    Longsword = 14
    Switchaxe = 15


class Greatsword:
    NoEquipment = 0
    IronSword = 1
    IronSwordPlus = 2
    BusterSword = 3
    BusterSwordPlus = 4
    BusterBlade = 5
    RavagerBlade = 6
    RavagerBladePlus = 7
    LaceratorBlade = 8
    MutilatorBlade = 9
    Brazenwall = 10
    Crimsonwall = 11
    RuggedGreatSword = 12
    ChieftainsGrtSwd = 13
    HighChiefsGrtSwd = 14
    CarapaceSword = 15
    CarapaceBlade = 16
    BarrothWedge = 17
    BarrothSmasher = 18
    LagiacrusBlade = 19
    err20 = 20
    LagiaLightningR = 21
    err22 = 22
    LagiaLightningY = 23
    LagiaBlueboltP = 24
    LagiaBlueboltG = 25
    HighLagiaBlade = 26
    err27 = 27
    err28 = 28
    err29 = 29
    err30 = 30
    LagiaWildfireP = 31
    err32 = 32
    LudrothBoneSword = 33
    LudrothBoneSwordPlus = 34
    CataclysmSword = 35
    CataclysmBlade = 36
    VikingHornsword = 37
    AnchariusSword = 38
    RedWing = 39
    RathalosFiresword = 40
    RathalosFlamesword = 41
    BoneBlade = 42
    BoneBladePlus = 43
    Jawblade = 44
    GiantJawblade = 45
    WyvernJawblade = 46
    GolemBlade = 47
    GolemBladePlus = 48
    BladeofTalos = 49
    ValkyrieBlade = 50
    Sieglinde = 51
    err52 = 52
    err53 = 53
    err54 = 54
    DreadIgnition = 55
    HighSieglindeP = 56
    HighSieglindeG = 57
    Siegmund = 58
    HighSiegmund = 59
    QuarrelHornsword = 60
    DiablosHornsword = 61
    RustedGreatSword = 62
    TarnishedGreatSwd = 63
    AncientBlade = 64
    ElderMonument = 65
    WornGreatSword = 66
    WeatheredGrtSword = 67
    EpitaphBlade = 68
    Vulcanis = 69
    err70 = 70
    VulcanvilR = 71
    VulcanvilB = 72
    VulcanvilY = 73
    err74 = 74
    err75 = 75
    err76 = 76
    err77 = 77
    err78 = 78
    err79 = 79
    VulcamagnonP = 80
    VulcamagnonG = 81
    BerserkerSword = 82
    err83 = 83
    err84 = 84
    err85 = 85
    err86 = 86
    AnguishP = 87
    AnguishG = 88
    AlatreonGreatSword = 89
    AlatreonRevolution = 90
    ProtoRazor = 91
    ChromeRazor = 92
    LionsBane = 93
    err94 = 94
    err95 = 95
    err96 = 96
    err97 = 97


class SnS:
    NoEquipment = 0
    HuntersKnife = 1
    HuntersKnifePlus = 2
    HuntersDagger = 3
    AssassinsDagger = 4
    ShadowSaber = 5
    ShadowSaberPlus = 6
    ToxicFang = 7
    IcicleSpike = 8
    IcicleSpikePlus = 9
    Nardebosche = 10
    SoldiersDagger = 11
    CommandersDagger = 12
    HydraKnife = 13
    DeadlyKnife = 14
    HypnosKnife = 15
    MorpheusKnife = 16
    AziDahaka = 17
    AziDahakaPlus = 18
    err19 = 19
    err20 = 20
    err21 = 21
    err22 = 22
    AlmightyDahakaP = 23
    Meteora = 24
    CarapaceMace = 25
    CarapaceMacePlus = 26
    BarrothClub = 27
    GigasClub = 28
    GigasCrusher = 29
    BoneKris = 30
    BoneKrisPlus = 31
    LudrothsNail = 32
    RoyalClaw = 33
    RoyalClawPlus = 34
    RoyalLudrothClaw = 35
    SeaStriker = 36
    AbyssalStriker = 37
    BloodTabar = 38
    PlagueTabar = 39
    BoneTomahawk = 40
    QurupecoChopper = 41
    Djinn = 42
    BlazingFalchion = 43
    LagiaSword = 44
    err45 = 45
    StormSwordR = 46
    err47 = 47
    StormSwordY = 48
    MaelstromSwordP = 49
    MaelstromSwordG = 50
    HighLagiaSword = 51
    err52 = 52
    err53 = 53
    err54 = 54
    err55 = 55
    err56 = 56
    TakemikazuchiG = 57
    RustedSword = 58
    TarnishedSword = 59
    EternalStrife = 60
    EternalHate = 61
    WornSword = 62
    WeatheredSword = 63
    DivineExodus = 64
    TuskGear = 65
    err66 = 66
    FossilGearR = 67
    FossilGearB = 68
    FossilGearY = 69
    err70 = 70
    err71 = 71
    err72 = 72
    err73 = 73
    err74 = 74
    err75 = 75
    SkullsWrathP = 76
    SkullsWrathG = 77
    ChakChak = 78
    ChakChakPlus = 79
    WaggaWagga = 80
    JhenKodachi = 81
    err82 = 82
    err83 = 83
    err84 = 84
    err85 = 85
    CalmSandsP = 86
    CalmSandsG = 87
    AlatreonSword = 88
    AlatreonStar = 89
    WarriorsSword = 90
    Odyssey = 91
    err92 = 92
    err93 = 93
    err94 = 94
    err95 = 95
    err96 = 96
    err97 = 97


class Hammer:
    NoEquipment = 0
    IronHammer = 1
    IronHammerPlus = 2
    WarHammer = 3
    WarHammerPlus = 4
    WarMace = 5
    IronStriker = 6
    IronImpact = 7
    GunHammer = 8
    GunHammerPlus = 9
    DeadeyeRevolver = 10
    VortexHammer = 11
    err12 = 12
    VorticalHammerR = 13
    err14 = 14
    VorticalHammerY = 15
    VortiginousHmrP = 16
    VortiginousHmrG = 17
    HighVortexHammer = 18
    err19 = 19
    err20 = 20
    err21 = 21
    err22 = 22
    err23 = 23
    VortastropheG = 24
    PlumeFlint = 25
    PecoFlint = 26
    RedBludgeon = 27
    RedBludgeonPlus = 28
    err29 = 29
    err30 = 30
    err31 = 31
    err32 = 32
    HuracanHammerP = 33
    err34 = 34
    Numbingbird = 35
    Paralykeet = 36
    AlluringLotus = 37
    BoneHammer = 38
    BoneHammerPlus = 39
    LudrothBoneMace = 40
    LudrothBoneMaul = 41
    LudrothSplashhammer = 42
    VodyanoyHammer = 43
    FangHammerEcho = 44
    FangHammerRuin = 45
    JhenMohranHammer = 46
    CarapaceHammer = 47
    CarapaceHammerPlus = 48
    BarrothHammer = 49
    Brazenclout = 50
    Crimsonclout = 51
    GigasHammer = 52
    BoneBludgeon = 53
    BoneBludgeonPlus = 54
    RustedHammer = 55
    TarnishedHammer = 56
    BreathCoreHammer = 57
    LavaCoreHammer = 58
    WornHammer = 59
    WeatheredHammer = 60
    PulsatingCore = 61
    Gaiasp = 62
    err63 = 63
    GaiarchR = 64
    GaiarchB = 65
    GaiarchY = 66
    err67 = 67
    err68 = 68
    err69 = 69
    err70 = 70
    err71 = 71
    err72 = 72
    GreatGaiarchP = 73
    GreatGaiarchG = 74
    DevilsDue = 75
    err76 = 76
    err77 = 77
    err78 = 78
    DevilsAdvocate = 79
    DevilsCrushP = 80
    DevilsCrushG = 81
    AlatreonHammer = 82
    AlatreonMetamorph = 83
    Kurogane = 84
    IronDevil = 85
    err86 = 86
    err87 = 87
    err88 = 88
    err89 = 89
    err90 = 90
    err91 = 91
    err92 = 92
    err93 = 93
    err94 = 94
    err95 = 95
    err96 = 96
    err97 = 97


class Longsword:
    NoEquipment = 0
    Thunderclap = 1
    ThunderclapPlus = 2
    err3 = 3
    HeavensThunderR = 4
    err5 = 5
    HeavensThunderY = 6
    err7 = 7
    err8 = 8
    AnantaBoneblade = 9
    AnantaBonebladePlus = 10
    err11 = 11
    err12 = 12
    err13 = 13
    err14 = 14
    ShadowbinderP = 15
    ShadowbinderG = 16
    DancingFlames = 17
    DancingHellfire = 18
    WyvernBladeFire = 19
    WyvernBladeFlame = 20
    WyvernBladeFlare = 21
    BarbarianBlade = 22
    BarbarianBladePlus = 23
    err24 = 24
    err25 = 25
    err26 = 26
    err27 = 27
    BarbrianSharqP = 28
    OrochiSword = 29
    GuanDao = 30
    err31 = 31
    err32 = 32
    err33 = 33
    err34 = 34
    YanYueDaoP = 35
    YanYueDaoG = 36
    ReaverCruelty = 37
    ReaverCalamity = 38
    DarkClaw = 39
    DarkClawDemise = 40
    Tenebra = 41
    TenebraD = 42
    RisingSoul = 43
    err44 = 44
    err45 = 45
    err46 = 46
    err47 = 47
    err48 = 48
    err49 = 49
    err50 = 50
    err51 = 51
    err52 = 52
    err53 = 53
    err54 = 54
    err55 = 55
    err56 = 56
    err57 = 57
    err58 = 58
    err59 = 59
    err60 = 60
    err61 = 61
    err62 = 62
    err63 = 63
    err64 = 64
    err65 = 65
    err66 = 66
    err67 = 67
    err68 = 68
    err69 = 69
    err70 = 70
    err71 = 71
    err72 = 72
    err73 = 73
    err74 = 74
    err75 = 75
    err76 = 76
    err77 = 77
    err78 = 78
    err79 = 79
    err80 = 80
    err81 = 81
    err82 = 82
    err83 = 83
    err84 = 84
    err85 = 85
    err86 = 86
    err87 = 87
    err88 = 88
    err89 = 89
    err90 = 90
    err91 = 91
    err92 = 92
    err93 = 93
    err94 = 94
    err95 = 95
    err96 = 96
    err97 = 97


class Switchaxe:
    NoEquipment = 0
    BoneAxe = 1
    BoneAxePlus = 2
    AssaultAxe = 3
    AssaultAxePlus = 4
    err5 = 5
    BlitzkriegR = 6
    BlitzkriegB = 7
    err8 = 8
    err9 = 9
    err10 = 10
    err11 = 11
    err12 = 12
    err13 = 13
    err14 = 14
    BastionBlitzP = 15
    err16 = 16
    FireTempest = 17
    FlameTempest = 18
    BoltAxe = 19
    err20 = 20
    VoltAxeR = 21
    err22 = 22
    VoltAxeY = 23
    MegavoltAxeP = 24
    MegavoltAxeG = 25
    HighBoltAxe = 26
    err27 = 27
    err28 = 28
    err29 = 29
    err30 = 30
    ThunderstrikeP = 31
    ThunderstrikeG = 32
    AmberSlash = 33
    AmberSlashPlus = 34
    AmberHoarfrost = 35
    Inceadeus = 36
    InceadeusPlus = 37
    GreatInceadeus = 38
    Demonbind = 39
    err40 = 40
    err41 = 41
    err42 = 42
    IronbloodAxe = 43
    GreatDemonbindP = 44
    GreatDemonbindG = 45
    RoughEdge = 46
    err47 = 47
    ToughBreakR = 48
    ToughBreakB = 49
    ToughBreakY = 50
    err51 = 51
    err52 = 52
    err53 = 53
    err54 = 54
    err55 = 55
    err56 = 56
    SoulbreakerP = 57
    SoulbreakerG = 58
    DarkSwitchAxe = 59
    BlackHarvest = 60
    SinisterSaints = 61
    err62 = 62
    err63 = 63
    err64 = 64
    err65 = 65
    err66 = 66
    err67 = 67
    err68 = 68
    err69 = 69
    err70 = 70
    err71 = 71
    err72 = 72
    err73 = 73
    err74 = 74
    err75 = 75
    err76 = 76
    err77 = 77
    err78 = 78
    err79 = 79
    err80 = 80
    err81 = 81
    err82 = 82
    err83 = 83
    err84 = 84
    err85 = 85
    err86 = 86
    err87 = 87
    err88 = 88
    err89 = 89
    err90 = 90
    err91 = 91
    err92 = 92
    err93 = 93
    err94 = 94
    err95 = 95
    err96 = 96
    err97 = 97


class Lance:
    NoEquipment = 0
    IronLance = 1
    IronLancePlus = 2
    ThaneLance = 3
    KnightLance = 4
    Rampart = 5
    RampartPlus = 6
    BabelSpear = 7
    BabelSpearPlus = 8
    err9 = 9
    ElderBabelSprR = 10
    NegaBabylon = 11
    err12 = 12
    err13 = 13
    err14 = 14
    AcrusLance = 15
    err16 = 16
    DorisSpearR = 17
    err18 = 18
    DorisSpearY = 19
    DorisFellspearP = 20
    DorisFellspearG = 21
    HighAcrusLance = 22
    err23 = 23
    err24 = 24
    err25 = 25
    err26 = 26
    AmphitriteP = 27
    err28 = 28
    TuskLance = 29
    TuskLancePlus = 30
    err31 = 31
    err32 = 32
    err33 = 33
    err34 = 34
    err35 = 35
    SabertoothG = 36
    GobuluMuruka = 37
    GobuluMurukaPlus = 38
    GobulukuMuraaka = 39
    BoneLance = 40
    BoneLancePlus = 41
    Ploshasta = 42
    Rhenohasta = 43
    AzureCrest = 44
    AzureCrestPlus = 45
    GreatAzure = 46
    RuggedLance = 47
    RuggedLancePlus = 48
    DiablosLance = 49
    DiablosSpear = 50
    SpiralHeat = 51
    AgnaktorFirelance = 52
    LudrothBoneSpear = 53
    SpiralLance = 54
    SpiralLancePlus = 55
    err56 = 56
    err57 = 57
    SpiralSplashB = 58
    err59 = 59
    err60 = 60
    SpiralSplashG = 61
    ShadowJavelin = 62
    ToxicJavelin = 63
    RustedLance = 64
    TarnishedLance = 65
    Undertaker = 66
    HighUndertaker = 67
    WornSpear = 68
    WeatheredSpear = 69
    Skyscraper = 70
    BlueCrater = 71
    err72 = 72
    SmaltCraterR = 73
    SmaltCraterB = 74
    SmaltCraterY = 75
    err76 = 76
    err77 = 77
    err78 = 78
    err79 = 79
    err80 = 80
    err81 = 81
    DoomCrownP = 82
    DoomCrownG = 83
    GriefLance = 84
    err85 = 85
    err86 = 86
    err87 = 87
    err88 = 88
    FiendishTowerP = 89
    FiendishTowerG = 90
    AlatreonLance = 91
    AlatreonGleam = 92
    WarriorsLance = 93
    Millennium = 94
    SharqAttaq = 95
    ML001Baltzenger = 96
    BanderlanceByakko = 97


class BowgunFrame:
    LightBowgun = 1
    MediumBowgun = 2
    HeavyBowgun = 3
    RoyalLauncher = 4
    JaggidFire = 5
    ThundacrusRex = 6
    RathlingGunPlus = 7
    BlizzardCannon = 8
    PoisonStinger = 9
    DevilsGrin = 10
    TropecoGun = 11
    Diablazooka = 12
    Agnablaster = 13
    ChaosWing = 14
    JhenCannon = 15
    Dummy = 16
    AquamaticSpark = 17
    AquamaticLongshot = 18
    Vulcannon = 19
    err20 = 20


class BowgunStock:
    NoEquipment = 0
    LightBowgun = 1
    MediumBowgun = 2
    HeavyBowgun = 3
    AquamaticNeedler = 4
    RoyalLauncher = 5
    Thundacrus = 6
    ThundacrusRex = 7
    RathlingGun = 8
    RathlingGunPlus = 9
    BlizzardCannon = 10
    PoisonStinger = 11
    TropecoGun = 12
    Diablazooka = 13
    Agnablaster = 14
    ChaosWing = 15
    JhenCannon = 16
    AquamaticSpark = 17
    AquamaticLongshot = 18
    Vulcannon = 19
    err20 = 20


class BowgunBarrel:
    LightBowgun = 1
    MediumBowgun = 2
    HeavyBowgun = 3
    AquamaticNeedler = 4
    RoyalLauncher = 5
    JaggidFire = 6
    Thundacrus = 7
    ThundacrusRex = 8
    RathlingGun = 9
    RathlingGunPlus = 10
    Barrozooka = 11
    DevilsGrin = 12
    TropecoGun = 13
    Diablazooka = 14
    ChaosWing = 15
    JhenCannon = 16
    AquamaticSpark = 17
    AquamaticLongshot = 18
    Vulcannon = 19
    BloodguiltyMaw = 20
